home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1995 November / EnigmA AMIGA RUN 02 (1995)(G.R. Edizioni)(IT)[!][issue 1995-11][Skylink CD].iso / earcd / program / amos / amoslist.lzh / AMOSLIST / 000399_amos-request@svcs1.digex.net_Fri Sep 29 18:32:08 1995.msg < prev    next >
Internet Message Format  |  1995-10-02  |  4KB

  1. Received: from svcs1.digex.net (svcs1.digex.net [204.91.197.224]) by mail1.access.digex.net (8.6.12/8.6.12) with ESMTP id SAA00735;  for <mcox@access.digex.net> ; Fri, 29 Sep 1995 18:32:07 -0400
  2. Received: (from daemon@localhost) by svcs1.digex.net (8.6.12/8.6.12) id OAA01263 for amos-out; Fri, 29 Sep 1995 14:41:53 -0400
  3. Received: from mail1.access.digex.net (mail1.access.digex.net [205.197.247.2]) by svcs1.digex.net (8.6.12/8.6.12) with ESMTP id OAA01260 for <amos-list@svcs1.digex.net>; Fri, 29 Sep 1995 14:41:52 -0400
  4. Received: from mail.mel.aone.net.au (mail.mel.aone.net.au [203.12.176.157]) by mail1.access.digex.net (8.6.12/8.6.12) with ESMTP id OAA00478;  for <amos-list@access.digex.net> ; Fri, 29 Sep 1995 14:41:49 -0400
  5. Received: from kyoko.mpx.com.au (kyoko.mpx.com.au [203.2.75.2]) by mail.mel.aone.net.au (8.6.11/8.6.11) with ESMTP id EAA22316 for <amos-list@access.digex.net>; Sat, 30 Sep 1995 04:41:47 +1000
  6. Received: from cristal.mpx.com.au by kyoko.mpx.com.au with smtp
  7.     (Smail3.1.29.1 #7) id m0sykNW-0006NfC; Sat, 30 Sep 95 04:41 EST
  8. Received: from comlink.mpx.com.au by cristal.mpx.com.au with uucp
  9.     (Smail3.1.28.1 #3) id m0syjvl-0000e4C; Sat, 30 Sep 95 04:13 EDT
  10. Received: by comlink.mpx.com.au (V1.16/Amiga)
  11.     id AA025nw; Fri, 29 Sep 95 18:15:27 1100
  12. Date: Fri, 29 Sep 95 18:15:27 1100
  13. Message-Id: <9509300015.AA025nv@comlink.mpx.com.au>
  14. From: Darryl_Lewis@comlink.mpx.com.au (Darryl Lewis)
  15. To: amos-list@access.digex.net
  16. Subject: Optimise this?
  17. Status: RO
  18. X-Status: 
  19.  
  20. Simce the recent "arc of a circle" challenge, where people removed (or sped
  21. up) the floating point sin and cos functions, can any one make this code
  22. faster?
  23.  
  24.  
  25. 'number of stars
  26. NP=20
  27. '
  28. Dim XX(NP),YY(NP),PX(NP),PY(NP),PZ(NP)
  29. Global CS#,SN#
  30. Global XX(),YY(),PX(),PY(),PZ(),NP
  31. Global D,DY,DDY,DZ,DDZ,DX,DDX
  32. INIT : DISP
  33. Procedure INIT
  34.    Close Workbench : Close Editor 
  35.    Screen Open 0,320,245,4,Lowres : Cls 0 : Flash Off : Hide On 
  36.    Palette 0,0,0,0
  37.    Double Buffer : Autoback 0 : Update Off 
  38.    '
  39.    ' Pre-calculated SIN & COS values for 1 degree roation 
  40.    CS#=0.9993902*1.0006 : SN#=0.0348995*1.0006
  41.    '
  42.    ' Speed & acceleration in 3D.
  43.    D=25000 : DDX=-3 : DDY=3 : DDZ=-8
  44.    DX=0 : DY=0 : DZ=0
  45.    '
  46.    For T=1 To NP
  47.       ' Random starting position 
  48.       PX(T)=Rnd(2500)-1250
  49.       PY(T)=Rnd(2500)-1250
  50.       PZ(T)=Rnd(62000)-20000
  51.    Next 
  52.    Fade 10,0,$FFF,$999,$444
  53.    '
  54. End Proc
  55. Procedure DISP
  56.    '
  57.    Repeat 
  58.       '  
  59.       For A=1 To NP
  60.          ' Calc screen co-ords from 3D co-ords
  61.          TEMP=PX(A)*D
  62.          PZ=(PZ(A)+D)*8
  63.          XX(A)=TEMP/PZ
  64.          '  
  65.          TEMP=PY(A)*D
  66.          YY(A)=TEMP/PZ
  67.          
  68.          ' translation to middle of screen. 
  69.          Add XX(A),160
  70.          Add YY(A),128
  71.          S=1+(PZ(A)+20000)/10000
  72.          '  
  73.          ' Remove the 'quotes' from next for lines
  74.          ' to add some rotation.  
  75.          '   If DY>0
  76.          '     PX(A)=PX(A)*CS#-PY(A)*SN#
  77.          '     PY(A)=PY(A)*CS#+PX(A)*SN#
  78.          '  End If  
  79.          '
  80.          ' R=Rnd(100)+50
  81.          Add PZ(A),DZ,-20000+R To 42000
  82.          Add PY(A),DY,-1200-R To 1200
  83.          Add PX(A),DX,-1400-R To 1400
  84.          '    
  85.          Bob A,XX(A),YY(A),S
  86.          '
  87.       Next 
  88.       '  
  89.       Update : Wait Vbl 
  90.       '    
  91.       Add DZ,DDZ
  92.       If DZ>3500 or DZ<-3500
  93.          DDZ=-DDZ
  94.       End If 
  95.       '
  96.       Add DY,DDY
  97.       If DY>R+50 or DY<-140
  98.          DDY=-DDY
  99.       End If 
  100.       '
  101.       Add DX,DDX
  102.       If DX>130 or DX<-150
  103.          DDX=-DDX
  104.       End If 
  105.       '
  106.    Until Mouse Key
  107.    '
  108. End Proc
  109.  
  110. -- Via DLG Pro v1.0
  111.  
  112.                #####\             _             /#####
  113.                #( )# |          _( )__         | #( )# 
  114.                ##### |         /_    /         | #####
  115.                #" "# |     ___m/I_ //_____     | #" "#
  116.                # O # |____#-x.\ /++m\ /.x-#____| # O #
  117.                #m.m# |   /" \ ///###\\\ / "\   | #m.m#
  118.                #####/    ######/     \######    \#####